package com.tz.farmer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.smartPark.msframe.result.ResultEx;
import com.tz.farmer.model.BusinessInfo;
import com.tz.farmer.so.*;

import java.util.List;

public interface WebFarmerDataService extends IService<BusinessInfo> {

    /**
     * 添加主体信息
     * @param so
     * @return
     */
    ResultEx addBusinessInfo(BusinessInfoSo so);

    /**
     * 修改主题信息
     * @param so
     * @return
     */
    ResultEx updateBusinessInfo(BusinessInfoSo so);

    /**
     * 批量添加认证信息
     * @param so
     * @return
     */
    ResultEx addAuthenticationInfo(EmptySo so);

    /**
     * 源头主题企业信息查询列表
     * @param so
     * @return
     */
    ResultEx getBusinessInfoList(BusinessInfoSo so,String userAccount);

    /**
     *  删除一条产品认证信息
     * @param so
     * @return
     */
    ResultEx deleteAuthenticationInfo(EmptySo so);

    /**
     *  修改产品认证信息
     * @param so
     * @return
     */
    ResultEx updateAuthenticationInfo(AuthenticationInfoSo so);

    /**
     * 根据主体id 查询产品认证信息列表
     * @param so
     * @return
     */
    ResultEx getAuthenticationInfoByLeadId(AuthenticationInfoSo so);


    /**
     * 删除检测信息
     * @param so
     * @return
     */
    ResultEx deleteDetectionInfo(DetectionInfoSo so);

    /**
     * 查询检测列表
     * @param so
     * @return
     */
    ResultEx getDetectionInfoList(DetectionInfoSo so);


    /**
     * 修改监测信息
     * @param so
     * @return
     */
    ResultEx updateDetectionInfo(DetectionInfoSo so);

    /**
     *  单插一条检测信息
     * @param so
     * @return
     */
    ResultEx getOneDetectionInfo(DetectionInfoSo so);


    /**
     * 查看种植列表
     * @param so
     * @return
     */
    ResultEx getOperateInfoList(OperateInfoSo so);


    /**
     * 删除种植信息
     * @param so
     * @return
     */
    ResultEx deleteOperateInfo(OperateInfoSo so);

    /**
     * 查询一条种植信息
     * @param so
     * @return
     */
    ResultEx getOneOperateInfo(OperateInfoSo so);

    /**
     * 修改种植信息
     * @param so
     * @return
     */
    ResultEx updateOperateInfo(OperateInfoSo so);

    /**
     * 交易列表
     * @param so
     * @return
     */
    ResultEx getTradeInfoList(TradeInfoSo so);


    /**
     * 删除交易
     * @param so
     * @return
     */
    ResultEx deleteTradeInfo(TradeInfoSo so);

    /**
     * 单插交易
     * @param so
     * @return
     */
    ResultEx getOneTradeInfo(TradeInfoSo so);

    /**
     * 修改交易
     * @param so
     * @return
     */
    ResultEx updateTradeInfo(TradeInfoSo so);

    /**
     * 添加产品信息
     * @param so
     * @return
     */
    ResultEx addProductInfo(ProductInfoSo so);

    /**
     * 修改产品信息
     * @param so
     * @return
     */
    ResultEx updateProductInfo(ProductInfoSo so);

    /**
     * 删除产品信息
     * @param so
     * @return
     */
    ResultEx deleteProductInfo(ProductInfoSo so);

    /**
     * 单查产品信息
     * @param so
     * @return
     */
    ResultEx getOneProductInfo(ProductInfoSo so);

    /**
     *  产品列表
     * @param so
     * @return
     */
    ResultEx getProductInfoList(ProductInfoSo so ,String userAccount);


    /**
     * 根据主体id 查询产品信息列表
     * @param so
     * @return
     */
    ResultEx getProductInformation(ProductInfoSo so);

    ResultEx addDetection(DetectionInfoSo so);

    ResultEx addTrade(TradeSo so);

    ResultEx addOperate(OperateSo so);
}
